/**
 * 2009 # 27/08/2009 # 00:17:26
 * pratico
 */
package br.org.bertol.mestrado.util;

import br.org.bertol.mestrado.engine.optimisation.pso.TypeMovement;

/**
 * @author contaqualquer
 */
public final class PsoConfiguration {

    /***/
    private transient int            depth;

    /***/
    private transient int            repositorysize;

    /***/
    private transient float          initialinertia;

    /***/
    private transient float          finalinertia;

    /***/
    private transient float          fatorsocial;

    /***/
    private transient float          fatorcognitivo;

    /***/
    private transient float          multiplicadorconstricao;

    /***/
    private transient int            populacao;

    /***/
    private transient TypeMovement[] typeMoviment;

    /**
     * @param depth
     *            the depth to set
     */
    void setDepth(final int depth) {
        this.depth = depth;
    }

    /**
     * @param repositorysize
     *            the repositorysize to set
     */
    void setRepositorysize(final int repositorysize) {
        this.repositorysize = repositorysize;
    }

    /**
     * @param initialinertia
     *            the initialinertia to set
     */
    void setInitialinertia(final float initialinertia) {
        this.initialinertia = (initialinertia < 0 ? 0f
                : (initialinertia > 1f ? 1f
                : initialinertia));
    }

    /**
     * @param finalinertia
     *            the finalinertia to set
     */
    void setFinalinertia(final float finalinertia) {
        this.finalinertia = (finalinertia < 0 ? 0f : (finalinertia > 1f ? 1f
                : finalinertia));
    }

    /**
     * @param fatorsocial
     *            the fatorsocial to set
     */
    void setFatorsocial(final float fatorsocial) {
        this.fatorsocial = (fatorsocial < 0 ? fatorsocial * -1
                : fatorsocial);
    }

    /**
     * @param fatorcognitivo
     *            the fatorcognitivo to set
     */
    void setFatorcognitivo(final float fatorcognitivo) {
        this.fatorcognitivo = (fatorcognitivo < 0 ? fatorcognitivo
                * -1
                : fatorcognitivo);
    }

    /**
     * @param multiplicadorconstricao
     *            the multiplicadorconstricao to set
     */
    void setMultiplicadorconstricao(final float multiplicadorconstricao) {
        this.multiplicadorconstricao = multiplicadorconstricao;
    }

    /**
     * @param populacao
     *            the populacao to set
     */
    void setPopulacao(final int populacao) {
        this.populacao = populacao;
    }

    /**
     * @return the depth
     */
    public int getDepth() {
        return depth;
    }

    /**
     * @return the repositorysize
     */
    public int getRepositorysize() {
        return repositorysize;
    }

    /**
     * @return the initialinertia
     */
    public float getInitialinertia() {
        return initialinertia;
    }

    /**
     * @return the finalinertia
     */
    public float getFinalinertia() {
        return finalinertia;
    }

    /**
     * @return the fatorsocial
     */
    public float getFatorsocial() {
        return fatorsocial;
    }

    /**
     * @return the fatorcognitivo
     */
    public float getFatorcognitivo() {
        return fatorcognitivo;
    }

    /**
     * @return the multiplicadorconstricao
     */
    public float getMultiplicadorconstricao() {
        return multiplicadorconstricao;
    }

    /**
     * @return the populacao
     */
    public int getPopulacao() {
        return populacao;
    }

    /**
     * @param typeMoviment
     *            the typeMoviment to set
     */
    void setTypeMoviment(final TypeMovement[] typeMoviment) {
        this.typeMoviment = typeMoviment;
    }

    /**
     * @return the typeMoviment
     */
    public TypeMovement[] getTypeMoviment() {
        return typeMoviment;
    }

}
